// NOTE: refactored, iteration 1

#region Copyright (c) 2003, newtelligence AG. All rights reserved.

/*
// Copyright (c) 2003, newtelligence AG. (http://www.newtelligence.com)
// Original BlogX Source Code: Copyright (c) 2003, Chris Anderson (http://simplegeek.com)
// All rights reserved.
//  
// Redistribution and use in source and binary forms, with or without modification, are permitted 
// provided that the following conditions are met: 
//  
// (1) Redistributions of source code must retain the above copyright notice, this list of 
// conditions and the following disclaimer. 
// (2) Redistributions in binary form must reproduce the above copyright notice, this list of 
// conditions and the following disclaimer in the documentation and/or other materials 
// provided with the distribution. 
// (3) Neither the name of the newtelligence AG nor the names of its contributors may be used 
// to endorse or promote products derived from this software without specific prior 
// written permission.
//      
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS 
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 
// IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 
// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// -------------------------------------------------------------------------
//
// Original BlogX source code (c) 2003 by Chris Anderson (http://simplegeek.com)
// 
// newtelligence is a registered trademark of newtelligence Aktiengesellschaft.
// 
// For portions of this software, the some additional copyright notices may apply 
// which can either be found in the license.txt file included in the source distribution
// or following this notice. 
//
*/

#endregion

using System;
using System.Resources;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using newtelligence.DasBlog.Web.Core;
using newtelligence.DasBlog.Web.Core.Config;

namespace newtelligence.DasBlog.Web
{
    public partial class ActivityBox : UserControl
    {
        protected static ResourceManager resmgr;
        protected static SiteConfig siteConfig;
        protected HtmlGenericControl editCrossPostSites;
        protected HtmlGenericControl editNavigatorLinks;
        protected Label labelTitle;

        protected void Page_Load(object sender, EventArgs e)
        {
            SiteSecurity.IfIsNotAdminRedirect(Response);
            // set the current page <li> tag to here
            string filePath = Request.FilePath;

            if (filePath.EndsWith(CoreFileNames.CrosspostReferrers, StringComparison.InvariantCultureIgnoreCase))
            {
                crosspost.Attributes[CoreCssStyles.Attributes.Class] = CoreCssStyles.Links.Here;
                hyperlinkCrosspostReferrers.NavigateUrl = String.Empty;
            }
            else if (filePath.EndsWith(CoreFileNames.UserClickThroughs, StringComparison.InvariantCultureIgnoreCase))
            {
                userclickthrough.Attributes[CoreCssStyles.Attributes.Class] = CoreCssStyles.Links.Here;
                hyperlinkUserClickThroughs.NavigateUrl = String.Empty;
            }
            else if (filePath.EndsWith(CoreFileNames.ClickThroughs, StringComparison.InvariantCultureIgnoreCase))
            {
                clickthrough.Attributes[CoreCssStyles.Attributes.Class] = CoreCssStyles.Links.Here;
                hyperlinkClickThroughs.NavigateUrl = String.Empty;
            }
            else if (filePath.EndsWith(CoreFileNames.AggBugs, StringComparison.InvariantCultureIgnoreCase))
            {
                aggbugs.Attributes[CoreCssStyles.Attributes.Class] = CoreCssStyles.Links.Here;
                hyperlinkAggBugs.NavigateUrl = String.Empty;
            }
            else if (filePath.EndsWith(CoreFileNames.Referrers, StringComparison.InvariantCultureIgnoreCase))
            {
                referrers.Attributes[CoreCssStyles.Attributes.Class] = CoreCssStyles.Links.Here;
                hyperLinkReferrers.NavigateUrl = String.Empty;
            }
            else if (filePath.EndsWith(CoreFileNames.Eventlog, StringComparison.InvariantCultureIgnoreCase))
            {
                eventlog.Attributes[CoreCssStyles.Attributes.Class] = CoreCssStyles.Links.FirstHere;
                hyperLinkEventlog.NavigateUrl = String.Empty;
            }

            if (Request.QueryString[CoreQueryStrings.DateTime.Date] != null)
            {
                AddDateQueryString(hyperLinkEventlog);
                AddDateQueryString(hyperLinkReferrers);
                AddDateQueryString(hyperlinkAggBugs);
                AddDateQueryString(hyperlinkClickThroughs);
                AddDateQueryString(hyperlinkUserClickThroughs);
                AddDateQueryString(hyperlinkCrosspostReferrers);
            }
        }

        protected void ActivityBox_PreRender(object sender, EventArgs e)
        {
            DataBind();
        }

        private void AddDateQueryString(HyperLink hyperLink)
        {
            if (hyperLink.NavigateUrl != String.Empty)
            {
                hyperLink.NavigateUrl =
                    String.Format("{0}?" + CoreQueryStrings.DateTime.Date + "={1}", hyperLink.NavigateUrl,
                                  Request.QueryString[CoreQueryStrings.DateTime.Date]);
            }
        }

        private void InitializeComponent()
        {
            PreRender += ActivityBox_PreRender;
        }

        protected override void OnInit(EventArgs e)
        {
            resmgr = ApplicationResourceTable.Get();
            SharedBasePage requestPage = Page as SharedBasePage;
            siteConfig = requestPage.SiteConfig;

            InitializeComponent();
            base.OnInit(e);
        }
    }
}